<?php
/**
 * 获取联动菜单接口
 */

header("Content-type:application/json;charset=utf-8");

defined('IN_PHPCMS') or exit('No permission resources.'); 
if(!$_GET['act']){
	echo '12';
	die;
}

// 安全验证机制
login_verify();

// 数字报栏目id
define('CAT_ID',7);

// userInfo
global $userInfo;

try{

	switch($_GET['act']) {
		case 'image_update':
			image_update();
		break;
		case 'content_update':
			content_update();
		break;
	}

}catch(Throwable $e){
	header("HTTP/1.1 501 failure");
	echo $e->getMessage();
	die;
}


/**
 * login 验证
 */
function login_verify(){

	$token = substr($_SERVER['HTTP_AUTHORIZATION'], 7);

	global $userInfo;

	$member_db = pc_base::load_model('weixin_member_model');

	$one = $member_db->get_one(['token'=>$token]);
	if(!$one){
		header("HTTP/1.1 401 auth fail");
		echo $token;
		die;
	}

	if($one['is_admin'] !== '是'){
		header("HTTP/1.1 401 auth fail");
		echo $token;
		die;
	}

	$userInfo = $one;
}

/**
 * 用于图片替换
 */
function image_update() {
	// 解析 json 数据
	$thumb = $_POST['image']??'';
	$thumb = safe_replace($thumb);
	if(!$thumb)
		throw new Exception('thumb地址错误');

	// 解析地址
	$urls = parse_url($thumb);
	$thumb = $urls['path'];
	$thumb = trim($thumb, "/");

	// 获取上传的文件地址
	$tmp_path = $_FILES['file']['tmp_name']??null;
	if(!$tmp_path){
		header("HTTP/1.1 400");
		echo '文件上传错误';
		return;
	}

	// 文件后缀验证
	$name = $_FILES['file']['name']??null;
	$ext = end(explode('.', $name));
	$allows = ['jpg','jpeg','webm','png'];

	if(!in_array(strtolower($ext),$allows)){
		header("HTTP/1.1 400");
		echo '文件类型非法';
		return;
	}

	// 验证是否是post文件
	if(!is_uploaded_file($tmp_path)){
		header("HTTP/1.1 400");
		echo '非法文件';
		return;
	}

	if(!file_exists($thumb)){
		header("HTTP/1.1 500");
		echo '非法操作';
		return;
	}


	if(!move_uploaded_file($tmp_path, $thumb)){
		header("HTTP/1.1 500");
		echo '修改失败';
		return;
	}

	echo json_encode([]);
}

/**
 * 用于文章内容替换
 */
function content_update() {

	// 解析 json 数据
	$input = file_get_contents("php://input");
	$array = json_decode($input, true);

	$id = safe_replace($array['id']);
	$content = $array['content'];

	if(!$id || $id != $array['id'])
		throw new Exception('发生错误');
	
	$db = pc_base::load_model('content_model');
	$db->set_catid(CAT_ID);
	$db->table_name = $db->table_name.'_data';


	$rd['content'] = str_replace("&nbsp;&nbsp;&nbsp;",'&ensp;&ensp;',$content);

	$upd = [
		'content'=>$content
	];

	$db->update($upd,['id'=>$id]);

	echo json_encode([] ,JSON_UNESCAPED_UNICODE);
}
